# -*- coding:utf-8 -*-

# @Time    : 2023/5/13 02:24
# @Author  : zengwenjia
# @Email   : zengwenjia@lingxi.ai
# @File    : user_intention.py
# @Software: LLM_internal

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# from agent.llm_agent import LLMAgent
from bot.insurance_sales_huize.agent.llm_agent import LLMAgent

default_template = """作为一个专业的保险业务专家，你现在面对的业务场景是：{role}通过电话向用户销售保险，你需要通过他们之间的对话记录去判断识别用户相关信息，识别的信息包括且只能包括：是否关注保险、关注的保险种类、关注的保司、关注的产品、为谁关注保险、是否为意向用户。
只使用'==='之间的对话记录来识别判断，需要注意以下信息：
1、对于要识别的用户信息，你需要按照对话顺序进行识别更新，以最新一轮的用户回应为准（比如用户在前一轮关注车险，后一轮关注年金，那么以后一轮用户的回应为准更新用户信息）。
2、对于用户是否为意向用户信息识别向用户，如果判断用户不是意向用户，那么你需要给出用户不是意向用户的原因。
3、你识别的信息必须符合基本的常识，比如：用户年龄不会超过100岁，也不可能是0岁；用户的姓氏要在中国百家姓内。
4、如果用户表示自己正在住院，得了癌症等重大疾病，咨询癌症，艾滋病等能不能投保时，表示该用户不适合购买保险，也就是该用户不是意向用户，不是意向用户的原因是身体不符。但是如果用户问得了某种疾病，还能不能买保险，则该用户是意向用户
5、如果用户表述自己退休或者年龄大于65岁，那么该用户不是意向用户，不是意向用户的原因就是年龄不符。 如果主动问年纪大的人，能买什么保险，那么该用户依旧是意向用户
6、如果该用户在保司工作，或者用户明确表示自己是代理人，该用户就不是意向用户，不是意向用户的原因是同行
7、保险包含儿童保险，成人保险，老年人保险等。如果用户咨询有没有适合自己或者家人的保险，那么该用户就是意向用户
8、如果用户是未成年，也就是小于18岁，那么该用户也不是意向用户，不是意向用户的原因是年龄不符
9、如果用户说要关注美女保险，关注娶老婆的保险，关注你，关注你妈，关注单身保险，关注人民币，关注个屁等不存在的保险时或者或者表达投诉时，那么该用户就不是意向用户，不是意向用户的原因是调侃
10、如果用户主动以肯定的语气让添加微信，那么该用户是意向用户，判定为意向用户的原因是想通过微信来了解更多内容。 
11、如果用户是机器人助理，表述类似[他现在不方便接电话，我是机主的助理，最高额度是多少，你找他有什么事，请问放贷额度是多少，能详细说一下吗，我会发微信给机主的微信，我会告诉他的，最高能申请多少，怎么领取这个重疾险，你找他有什么事情，机主的通讯管家],那么该用户不是意向用户，不是意向用户的原因是机器人。
12、如果用户关注车险和宠物险，那么该用户不是意向用户，不是意向用户的原因是不关注所售卖保险。
对话记录：
===
{conversation_history}
===
要求返回json格式，你的识别结果是："""
class UserIntentionExtract(LLMAgent):

    def __init__(self, role, conversation_history):
        self.role = role
        if not conversation_history:
            conversation_history = []
        self.conversation_history = conversation_history

        self.prompt = default_template.format(role=self.role,
                                              conversation_history=self.conversation_history)
        super().__init__(self.prompt)


if __name__ == '__main__':
    user_info_extract = UserIntentionExtract(role='慧择网电话销售顾问',
                                             conversation_history='我70岁了')
    result = user_info_extract.chat_with_azure()
    print(result)